Scheduling problems appear in many applications such as satellite scheduling, airline crew scheduling, vehicle routing, traveling salesmen problems, and the like. Applications such as these involve allocating resources to activities over time. Typically, resources are scarce and constrained in various ways, e.g., in the capacity of resources and/or the order of activities. Solving a typical scheduling problem can involve creating a schedule of activities that satisfies the constraints and is optimal according to some criterion. Implementing a schedule can include finding a desirable solution to a scheduling problem accounting for various constraints, communicating the desirable solution to the appropriate people or systems, and executing the schedule as communicated.